package sortieren;

/*Diese Klasse unterscheidet sich fast nicht von SortKonsole.
 *Ein Unterschied ist, dass die Standardzahlen des Klangdemonstrators
 *verwendet werden und diese anfangs nicht gemischt werden, damit man den
 *Anfang von 'Hänschen klein' erkennt. Diese Noten werden dann aufsteigend
 *sortiert und am Ende abgespielt.
 *Da erst nach dem Sortieren abgespielt werden kann, braucht der Klangdemonstrator
 *einen Startbefehl fürs Spielen, der in Demonstrator nicht vorgesehen ist.
 *Deshalb ist 'dem' hier ein KlangDemonstrator und nicht nur ein Demonstrator.
 *Außerdem muss am Schluss gewartet werden, bis alle Töne gespielt sind, daher
 *die while-Schleife. (System.exit ist nötig, weil bei der Tonerzeugung
 *Threads erzeugt wurden, die auch gekillt werden müssen.)
 */
public class SortKonsoleKlang{
  public static void main(String[] args){
    GetSwapSorter alg=new BubbleSort();
    alg.setAll(KlangDemonstrator.HAENSCHENKLEIN);
    KlangDemonstrator dem=new KlangDemonstrator();
    alg.addDemonstrator(dem);
    dem.readyAction(alg);//einmal unsortiert abspielen
    dem.join();//warte auf Abspielende
    alg.start();
    dem.join();
    System.out.println("Anzahl der Zugriffe:       "+alg.countedGets());
    System.out.println("Anzahl der Vertauschungen: "+alg.countedSwaps());
    //System.exit(0);
  }
}
